nfandomcom-20200216-history
NReality Modifications
Mods for NReality take the form of a string added to the end of the standard map data. When the map is loaded, the string disappears and the modifications are applied. The string is formatted like this: |bgImage|fgImage|NRealityMapType|objectMod|playerMod Player 03 has created a list of applications for NReality mods. New such uses should be posted there, not on this page. bgImage, fgImage Each of these slots will accept a link to an online image. The first image will be displayed in the background, and the second will be displayed in front of everything in the level. The foreground image can also be made into a color filter, as described here. To do this, add ?# to the end of the image URL, where #''' is a number between 1 and 14. NRealityMapType Any text in this slot will appear as a map's category when the map is displayed in the userlevels menu. objectMod This slot allows modifications to any type of object, though modifications to the ninja should be done in the playerMod slot. Modifications are applied to every object of the selected type, not to individual objects. The modifications are formatted like this: '''objectNumber,property,modification;, and any number of them can be strung together. objectNumber indicates the type of object and must be a number between 0 and 15. property indicates the property of the object to be modified. modification indicates the new value of the property, and it must be a number. The objects indicated by each number are these: 0: zap drone, seeker drone 1: laser drone, rotating laser drone 2: chaingun drone 3: gold 4: bounceblock 5: launchpad 6: gauss turret 7: floorguard, ceiling guard 8: ninja 9: drone (note: does not appear to affect any drones; use 0, 1, and 2 instead) 10: oneway platform 11: thwump 12: door 13: rocket launcher 14: exit 15: mine 16: force field drone 101, 102, 103: ghost drone 121: rocky drone Glitched drones (a.k.a. "eye drones") cannot be modified because the game does not recognize them as any of the three modifiable types of drones. All objects have some additional properties that can be applied to them. As these are the same for all objects, they are only listed once, in their own section. Special drones Other types of drones can be created by modifying a part of the standard code for a drone (6^x,y,path,specialType,droneType,direction). x''' and '''y control the drone's coordinates, path controls the drone's pathfinding algorithm, specialType indicates whether or not the drone is the standard drone of its type (e.g., whether it is a seeker drone rather than a regular drone), droneType controls the type of drone, and direction controls the drone's direction. Here are the parameters that can be set for each type of object: (Note: not all parameters have an effect on gameplay.) zap drone, seeker drone (0) r''' default = 9 '''speed default = 1 laser drone, rotating laser drone (1) r''' default = 9 '''speed laserPrefireDelay default = 30; determines the amount of time the drone will spend charging laserPostfireDelay default = 40; determines how long the drone will pause after firing laserRate default = 80; determines how long the drone will fire laserLen default = 7; usage unknown To create a rotating laser drone, replace the fourth attribute of a normal laser drone (specialType) with 1. The code for a rotating laser drone should look like 6^x,y,path,1,1,direction. Modifications for the rotating laser drone: startingAngle default = 0; controls the angle at which it starts rotateSpeed default = 0.5; controls the speed and direction of rotation fixedLaserLength no default value; if set, the laser will always be a fixed number of pixels long and can go through walls alwaysMove default = 0; if set to anything else, the laser drone will move as it fires and rotates. Also, adding ^''1'',2'',''3,4,''5'' to the end of the code for a rotating laser drone will set the starting angle (1), rotation speed (2), the laser length (3), whether or not the laser moves (4), and its speed (5). This will override global modifications of these same attributes. chaingun drone (2) r''' default = 9 '''speed chaingunPrefireDelay default = 35; determines the amount of time the drone will spend charging chaingunPostfireDelay default = 60; determines how long the drone will pause after firing chaingunMaxNum default = 8; usage unknown chaingunRate default = 6; determines the time, in frames, between each bullet chaingunSpread default = 0.3; usage unknown gold (3) r''' default = 6 bounceblock (4) '''stiff default = 0.05; controls the speed at which the block bounces back- very high or very low values may prevent it from doing so mass default = 0.2; controls the amount of force the block applies against the ninja- negative values make it propel the ninja forward sleepThreshold default = 40; determines how close the block has to come to its start position before it stops moving- low values make it stop sooner sleepTimer default = 0; usage unknown launchpad (5) r''' default = 6 '''strength default = 5.1428568; controls launchpad strength gauss turret (6) closeAimSpeed default = 0.05; determines how fast the crosshairs move when close to the ninja, represents the percentage of the distance between them covered midAimSpeed default = 0.035; determines how fast the crosshairs move when a medium distance away from the ninja farAimSpeed default = 0.03; determines how fast the crosshairs move when far away from the ninja aimSpeed default = 0.03; determines how fast the crosshairs move the frame after the turret fires outerThreshold default = 9216; determines how far away from the ninja is considered "far" away midThreshold default = 1764; determines what is considered to be "mid" distance from the ninja innerThreshold default = 576; determines how close the crosshairs must be to the ninja to be considered "close" shotRate default = 60; controls the minimum time between shots shotTimer default = 0; usage unknown fireDelayTimer default = 0; usage unknown prefireDelay default = 10; controls the turret's warm-up time postfireDelay default = 10; controls the turret's cooldown time floorguard, ceiling guard (7) r''' default = 6 '''speed default = 5.1428568 Ceiling guards are created by adding ^1 to the code of a floorguard (4^x,y). Its speed can be changed by adding ^1,speed instead. A wall guard is created by adding either ^2(left) or ^3(right) instead. ninja (8) See playerMod section. drones (9) No known properties. oneway platform (10) No known properties. thwump (11) (some apparently useless settings omitted) xw default = 9; controls thwump's width yw default = 9; controls thwump's height fallspeed default = 4.2857148; controls thwump's forward speed raisespeed default = 1.7142852; controls thwump's backward speed speed duplicate of fallspeed door (12) doorsize default = 10; apparently useless r''' default = ~10; apparently useless '''maxtimer default = 5; controls how long the normal doors stay open after the ninja passes through rocket launcher (13) speed default = 0; usage unknown maxspeed default = 3.4285716; controls the rocket's maximum speed startaccel default = 0.1; controls the rocket's acceleration for the first frame after it is created curaccel duplicate of startaccel accelrate default = 1.1; controls the rocket's acceleration turnrate default = 0.1; controls how far the rocket turns in one frame- at high values, it tends to turn too far and actually becomes less accurate isHoming default = false; usage unknown prefireDelay default = 10; controls how long the turret waits before firing a rocket, but has no effect on lagtime fireDelayTimer default = 0; usage unknown exit (14) r''' default = 12; does not affect the exit switch. ~27 appears to be the functional limit. The door will still aesthetically grow, but will functionally be only about 27 pixels wide. mine (15) '''r default = ~4 ~40 appears to be the functional limit. The mines will still aesthetically grow, but they functionally only be about 40 pixels wide. force field drone (16) To create a force field drone, replace the second-to-last attribute of any drone (droneType) with 16. The code for a force field drone should look like 6^x,y,path,0,16,direction. Most of the properties of the force field drone cannot be modified in the standard way, but they can be modified by adding ^''detectRadius'',forcePower,forceDelayTimer,forceMaxCount,''forceMaxCountDelay'' after each drone's code. You can omit any of these that you do not wish to change. detectRadius default = 100; controls the distance at which the drone starts firing forcePower default = 4; controls the force at which the ninja is pushed away from the drone (note: the ninja's velocity is reset when the drone fires, like when he hits a launchpad) forceDelayTimer default = 10; controls the length of the drone's cooldown time (the drone keeps moving during this time, unlike other drones) forceMaxCount default = 3; controls the number of consecutive shots the drone can fire before recharging for a longer time forceMaxCountDelay default = 200; controls the time spent recharging after forceMaxCount is reached These properties, as well as the additional properties for all objects, can be modified in the standard way: speed default = 1; r''' default = 9; Ghost Drone (101, 102, or 103) To create a ghost drone, replace the second-to-last attribute of any drone ('''droneType) with 101, 102, or 103. Ghost drones follow the ninja whenever he isn't looking and stop when he is. The main difference between the types is that the second type does not hurt the ninja when stopped, and the third type acts like a rocky drone when stopped. The only properties of the ghost drone that can be set normally are the additional properties that apply to all objects. All others must be set by adding text to the end of the code for each individual drone. The code for the first type is ^''acceleration'',maxvelocity,''alwaysChase, the code for the second type is '^''acceleration'',maxvelocity,minAlpha, and the code for the third type is '^''acceleration,''maxvelocity. '''acceleration' default = 0.02; controls how fast the drone accelerates towards the ninja maxvelocity default = 2; controls how fast the drone can go alwaysChase default = undefined; if set to 1, the first type of drone will not stop moving minAlpha default = 0; controls how completely the second type can fade away Rocky Drone (121) To create a rocky drone (essentially, a platform that moves like a drone), replace [[List of NReality Mods#Special drones|'droneType']] with 121. To make it follow you like a seeker drone, change specialType to 1. The rocky drone has only two properties specific to it, speed (default = ~0.8572) and r''' (default = 9). This property can be set by adding '''^speed to the end of its code or through the standard method. Triggerable Objects Objects can be "triggered" on and off via special door switches. "Off" objects will simply stop moving and not detect the ninja player at all, but they still detect collision, so an "off" zap drone, for example, is still dangerous. To add "Trigger" to a door switch, append ^startTriggers(separated by "."),stopTriggers(separated by ".") to the door switch object (which starts with 9^ ) To make the object triggerable, append ^^waitForTrigger,startTriggers(separated by "."),stopTriggers(separated by ".") Custom Path CustomPath: 6^x,y,6,0,droneType,direction^^^customPath where customPath is formed with U (up) D (down) L (left) R (right) When the end of a custom path is reached, it loops back to the beginning of the custom path to do it all over again. AI Pathing Objects All objects except rocket launcher and floor guard can be applied for Drone's AI Pathing system on it. AI Pathing Objects : append ^^^customPath,PathID,Direction,speed Path ID: SURFACE FOLLOW Clock Wise = 0; SURFACE FOLLOW Counter Clock Wise = 1; WANDER Clock Wise= 2; WANDER Counter Clock Wise = 3; WANDER ALTERNATING = 4; WANDER RANDOM = 5; Nreality CustomPath = 6; Circular Movement = 7; Also added is circular movement for objects. It will use objects' original position as center x,y PathID is 7 ^^^,7,0,speed,startAngle,Radius Additional properties There are also some properties relating to an object's display that can be applied to anything. Note that these will not affect gameplay, though. _xscale controls an object's width. The input is a number of pixels, so setting this to 20 would make the object appear to be 20 pixels wide. _yscale is the same as _xscale, except it applies to height. _alpha controls an objects transparency, and can be anything from 0 to 100. _color controls an object's color, and can modify red, green, and blue values for the object. It can be set to a value in the format red%.redMod.green%.greenMod.blue%.blueMod.transparent%.transparentMod. The "%" values multiply that channel by the given percent (e.g., if blue% was 50, the object's blue hues would be half as intense). The "Mod" values add the given amount to that channel. _color can be used to make an object any color by: # Finding the red, green, and blue values of the target color # Setting _color to 0.redValue.0.greenValue.0.blueValue.100.0 Note: this removes all texture from most objects. playerMod The syntax for this slot is much like the syntax for the objectMod slot, except without the identifier number: property,modification;. Again, any number of these can be strung together. Here is a list of all modifiable properties: r''' default = 10 '''maxspeedAir default = 0.5; controls the maximum speed the ninja can accelerate up to in the air (the ninja can go faster if he is propelled by something else, though) maxspeedGround default = 0.5; controls the maximum speed the ninja can accelerate up to on the ground groundAccel default = 0.15; controls the ninja's acceleration on the ground airAccel default = 0.1; controls the ninja's aerial acceleration g''' default = 0.15; controls gravity until the first time the ninja jumps '''d default = 0.99; controls air resistance until the first time the ninja jumps normGrav default = 0.15; controls gravity after the ninja has jumped normDrag default = 0.99; controls air resistance after the ninja has jumped jumpGrav default = 0.025; controls gravity for a short time after the jump button is pressed for as long as it it held max_jump_time default = 30; controls the maximum amount of time that jump gravity can apply to the ninja winDrag default = 0.8; usage unknown wallFriction default = 0.13; controls the friction the ninja experiences while wallsliding skidFriction default = 0.92; controls the friction the ninja experiences while sliding to a stop (note: higher values mean less friction, and values above 1 cause the ninja to speed up) standFriction default = 0.8; controls the friction the ninja experiences as he stops sliding entirely jumpAmt default = 1; controls the strength with which the ninja pushes off from the floor/slopes/walls jump_y_bias default = 2; controls the upwards motion (downwards if negative) the ninja experiences regardless of where he jumps from terminal_vel default = 0.9; controls the speed at which hitting the ground becomes deadly